package com.syf.starter.config;

import com.syf.kit.soa.SOACont;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * soa server 配置对象
 * */
@Data
@ConfigurationProperties(prefix = "server.soa")
public class SySOAServerConfiguration {
    /**
     * soa 服务的region名称.
     * 分布式中soa服务可能会组成一个集合，我们称之为soa service region。它等同微服务中的服务名
     */
    private String regionName;

    /**
     * soa 服务host（IP）
     */
    private String soaHost;

    /**
     * soa 服务监听端口
     */
    private Integer soaListenPort = 7722;

    /**
     * 当前soa region实例的负载权重值.
     * 负载的比例计算过程： 所有同名的region中balanceWeight之和作为分母，当前region的balanceWeight作为分子。此值默认都是1，所以默认为轮询负载.
     */
    private Integer balanceWeight = 1;

    /**
     * 环境：DEV,SIT,UAT,PRE,PROD,DR(灾备)
     * <p>
     * nacos,集群名，为满足多个测试类环境使用一个nacos集群s
     */
    private String runEnv = "PROD";

    /**
     * 魔数
     */
    private String rpcMagicNum = SOACont.DEFAULT_MAGIC_NUM;

    /**
     * 空闲多久没有数据，服务端自动超时，主动关闭连接，单位：秒
     */
    private Integer IDLE_MAX_SECONDS = 90;

    /**
     * 交易执行的超时时间，单位：秒
     * */
    private Integer serviceRequestTimeout = 30;

    private Integer SO_BACKLOG = 1024;

    private Integer SO_RCVBUF = 8096;

}
